/*
 * 一个小的头文件，可以被回溯的LLVM代码或PostgreSQL
 * 代码包含，以控制条件编译。
 */
#ifndef LLVMJIT_BACKPORT_H
#define LLVMJIT_BACKPORT_H

#include <llvm/Config/llvm-config.h>

/*
 * LLVM的RuntimeDyld可能会在更大内存的ARM
 * 系统上产生崩溃的代码，因为llvm::SectionMemoryManager分配了多个
 * 内存块，这些内存块对于生成的代码来说可能过于分散。有关我们用作解决方法的
 * 修补替代类llvm::backport::SectionMemoryManager，请参见
 * src/backend/jit/llvm/SectionMemoryManager.cpp。
 * 此头文件控制我们是否使用它。
 *
 * 我们已调整其以针对一系列LLVM版本进行编译，但目前不
 * 超过版本12。
 */
#if defined(__aarch64__) && LLVM_VERSION_MAJOR > 11
#define USE_LLVM_BACKPORT_SECTION_MEMORY_MANAGER
#endif

#endif
